1. Field of the Invention
The present invention relates generally to the field of computer systems, and specifically, to a method and apparatus for arbitrating between multiple data streams.
2. Background Information
Recently, high speed serial buses have become more and more popular in computer systems because of their low cost and high performance. A serial bus is connected to a high speed bus (such as the peripheral component interconnect "PCI" bus) by way of a bus bridge. The serial bus typically transmits different data streams such as asynchronous and isochronous data streams. Transmission of asynchronous data streams places emphasis on guaranteed delivery of data over guaranteed timing whereas transmission of isochronous data streams places emphasis on guaranteed timing of data over delivery. To support both asynchronous and isochronous data streams, the bus bridge includes an internal arbitration unit to select between the different data streams. Typically, the arbitration unit waits until a receive first-in/first out device ("FIFO") is almost full or a transmit FIFO is almost empty prior to asserting a request to access the PCI bus. The arbitration unit uses a simple, rotating priority scheme which rotates priority between the asynchronous and isochronous data streams. This type of arbitration scheme makes inefficient use of the PCI bus.
Accordingly, there is a need in the technology for a method and apparatus to provide an efficient arbitration mechanism between multiple data streams and a bus.